home *** CD-ROM | disk | FTP | other *** search
Text File | 1996-05-01 | 7.7 KB | 232 lines | [TEXT/MPS ] |
- /*
- File: Gestalt.idl
-
- Contains: Gestalt Interfaces.
-
- Version: Technology: System 7.5
- Release: Universal Interfaces 3.0d3 on Copland DR1
-
- Copyright: © 1984-1996 by Apple Computer, Inc. All rights reserved.
-
- Bugs?: If you find a problem with this file, send the file and version
- information (from above) and the problem description to:
-
- Internet: apple.bugs@applelink.apple.com
- AppleLink: APPLE.BUGS
-
- */
- #ifndef __GESTALT_IDL__
- #define __GESTALT_IDL__
-
- #include <somobj.idl>
- #include <somcls.idl>
-
- #ifndef __TYPES_IDL__
- #include <Types.idl>
- #endif
- #ifndef __MIXEDMODE_IDL__
- #include <MixedMode.idl>
- #endif
-
- #ifdef __SOMIDL__
-
- #if FOR_SYSTEM7_AND_SYSTEM8_COOPERATIVE
- typedef OpaquePtr SelectorFunctionProcPtr;
- typedef OpaquePtr SelectorFunctionUPP;
- #endif
- #if FOR_SYSTEM7_AND_SYSTEM8_COOPERATIVE
- #endif
- #if FOR_SYSTEM7_AND_SYSTEM8_DEPRECATED
- #endif
- #if FOR_SYSTEM7_AND_SYSTEM8_DEPRECATED
- #endif
- #if FOR_SYSTEM7_AND_SYSTEM8_COOPERATIVE
- /* These functions are built into System 7.5, but not on earlier systems*/
- #endif
- #if FOR_SYSTEM8_COOPERATIVE
- typedef OpaquePtr GestaltIteratorRef;
-
- #endif
- #if FOR_SYSTEM8_COOPERATIVE
- #endif
- #if FOR_SYSTEM7_AND_SYSTEM8_DEPRECATED
- #endif
- #if !OLDROUTINELOCATIONS
- /* Environs Equates*/
- typedef SOMLargeStruct SysEnvRec; /* Derived from a struct of 16 bytes in size */
-
- #if FOR_SYSTEM7_AND_SYSTEM8_DEPRECATED
- #endif
- #endif
- /* Environment Selectors */
- /*
- FORMAT OF gestaltATalkVersion RESPONSE
- --------------------------------------
- The version is stored in the high three bytes of the response value. Let us number
- the bytes in the response value from 0 to 3, where 0 is the least-significant byte.
-
- Byte#: 3 2 1 0
- Value: 0xMMNNRR00
-
- Byte 3 (MM) contains the major revision number, byte 2 (NN) contains the minor
- revision number, and byte 1 (RR) contains a constant that represents the release
- stage. Byte 0 always contains 0x00. The constants for the release stages are:
-
- development = 0x20
- alpha = 0x40
- beta = 0x60
- final = 0x80
- release = 0x80
-
- For example, if you call Gestalt with the 'atkv' selector when AppleTalk version 57
- is loaded, you receive the long integer response value 0x39008000.
- */
- /*
- The gestaltNativeCPUtype ('cput') selector can be used to determine the
- native CPU type for all Macs running System 7.5 or later.
-
- The 'cput' selector is not available when running System 7.0 (or earlier)
- on most 68K machines. If 'cput' is not available, then the 'proc' selector
- should be used to determine the processor type.
-
- An application should always try the 'cput' selector first. This is because,
- on PowerPC machines, the 'proc' selector will reflect the CPU type of the
- emulator's "virtual processor" rather than the native CPU type.
-
- The values specified below are accurate. Prior versions of the Gestalt
- interface file contained values that were off by one.
-
- The Quadra 840AV and the Quadra 660AV contain a bug in the ROM code that
- causes the 'cput' selector to respond with the value 5. This behavior
- occurs only when running System 7.1. System 7.5 fixes the bug by replacing
- the faulty 'cput' selector function with the correct one.
- */
- #if !OLDROUTINELOCATIONS
- #endif
- /*
- To obtain information about the connected keyboard(s), one should
- use the ADB Manager API. See Technical Note OV16 for details.
- */
- /*
- MACHINE TYPE CONSTANTS NAMING CONVENTION
-
- All future machine type constant names take the following form:
-
- gestalt<lineName><modelNumber>
-
- Line Names
-
- The following table contains the lines currently produced by Apple and the
- lineName substrings associated with them:
-
- Line lineName
- ------------------------- ------------
- Macintosh LC "MacLC"
- Macintosh Performa "Performa"
- Macintosh PowerBook "PowerBook"
- Macintosh PowerBook Duo "PowerBookDuo"
- Power Macintosh "PowerMac"
- Apple Workgroup Server "AWS"
-
- The following table contains lineNames for some discontinued lines:
-
- Line lineName
- ------------------------- ------------
- Macintosh Quadra "MacQuadra" (preferred)
- "Quadra" (also used, but not preferred)
- Macintosh Centris "MacCentris"
-
- Model Numbers
-
- The modelNumber is a string representing the specific model of the machine
- within its particular line. For example, for the Power Macintosh 8100/80,
- the modelNumber is "8100".
-
- Some Performa & LC model numbers contain variations in the rightmost 1 or 2
- digits to indicate different RAM and Hard Disk configurations. A single
- machine type is assigned for all variations of a specific model number. In
- this case, the modelNumber string consists of the constant leftmost part
- of the model number with 0s for the variant digits. For example, the
- Performa 6115 and Performa 6116 are both return the same machine type
- constant: gestaltPerforma6100.
-
-
- OLD NAMING CONVENTIONS
-
- The "Underscore Speed" suffix
-
- In the past, Apple differentiated between machines that had the same model
- number but different speeds. For example, the Power Macintosh 8100/80 and
- Power Macintosh 8100/100 return different machine type constants. This is
- why some existing machine type constant names take the form:
-
- gestalt<lineName><modelNumber>_<speed>
-
- e.g.
-
- gestaltPowerMac8100_110
- gestaltPowerMac7100_80
- gestaltPowerMac7100_66
-
- It is no longer necessary to use the "underscore speed" suffix. Starting with
- the Power Surge machines (Power Macintosh 7200, 7500, 8500 and 9500), speed is
- no longer used to differentiate between machine types. This is why a Power
- Macintosh 7200/75 and a Power Macintosh 7200/90 return the same machine type
- constant: gestaltPowerMac7200.
-
- The "Screen Type" suffix
-
- All PowerBook models prior to the PowerBook 190, and all PowerBook Duo models
- before the PowerBook Duo 2300 take the form:
-
- gestalt<lineName><modelNumber><screenType>
-
- Where <screenType> is "c" or the empty string.
-
- e.g.
-
- gestaltPowerBook100
- gestaltPowerBookDuo280
- gestaltPowerBookDuo280c
- gestaltPowerBook180
- gestaltPowerBook180c
-
- Starting with the PowerBook 190 series and the PowerBook Duo 2300 series, machine
- types are no longer differentiated based on screen type. This is why a PowerBook
- 5300cs/100 and a PowerBook 5300c/100 both return the same machine type constant:
- gestaltPowerBook5300.
-
- Macintosh LC 630 gestaltMacLC630
- Macintosh Performa 6200 gestaltPerforma6200
- Macintosh Quadra 700 gestaltQuadra700
- Macintosh PowerBook 5300 gestaltPowerBook5300
- Macintosh PowerBook Duo 2300 gestaltPowerBookDuo2300
- Power Macintosh 8500 gestaltPowerMac8500
- */
- /*
- The name gestaltMixedModeVersion for the 'mixd' selector is semantically incorrect.
- The same selector has been renamed gestaltMixedModeAttr to properly reflect the
- Inside Mac: PowerPC System Software documentation. The gestaltMixedModeVersion
- symbol has been preserved only for backwards compatibility.
-
- Developers are forewarned that gestaltMixedModeVersion has a limited lifespan and
- will be removed in a future release of the Interfaces.
-
- For the first version of Mixed Mode, both meanings of the 'mixd' selector are
- functionally identical. They both return 0x00000001. In subsequent versions
- of Mixed Mode, however, the 'mixd' selector will not respond with an increasing
- version number, but rather, with 32 attribute bits with various meanings.
- */
- /*
- * PPC will return the combination of following bit fields.
- * e.g. gestaltPPCSupportsRealTime +gestaltPPCSupportsIncoming + gestaltPPCSupportsOutGoing
- * indicates PPC is cuurently is only supports real time delivery
- * and both incoming and outgoing network sessions are allowed.
- * By default local real time delivery is supported as long as PPCInit has been called.
- */
-
- #endif /* __SOMIDL__ */
-
- #endif /* __GESTALT_IDL__ */
-
-